#pragma once

#include "DirectX.h"

class D3DManager;

class Camera
{
	// Singleton
	Camera();
	Camera(const Camera&);
	~Camera();
	Camera& operator =(const Camera&);

	Matrix cam;
	Matrix proj;

public:
	static Camera* getInstance();

	void ResetCamera(const Vector3 &eye,const Vector3 &at,const Vector3 &up);
	void ResetProjection(float FOV,float fAspectRatio,float zNear,float zFar);

	// Accessors and Mutators
	const Matrix& getCam() const { return cam; }
	void setCam(const Matrix &val) { cam = val; }
	const Matrix& getProj() const { return proj; }
	void setProj(const Matrix &val) { proj = val; }
};